# 集合的定义和基本操作及函数

varset = {123, 'a', 'b', True, False, 0, (1, 2, 3), 3.1415, 123}
# {False, True, 'a', 3.1415, 123, (1, 2, 3), 'b'}
"""
1,无序
2,False、True在集合中表示为0、1,所有False、True和0、1只能存在一个
3,元素的值不能重复
"""

res = 123 in varset
# True
res = 123 not in varset
# False

# 获取集合中的元素的个数
res = len(varset)
# 7

# 遍历集合
# for i in varset:
#     print(i, end=', ')
# False, True, 3.1415, b, 123, (1, 2, 3), a,

# varset.add() 集合中追加元素
varset.add('def')
# {False, True, 'a', 3.1415, 'def', 123, (1, 2, 3), 'b'}

# varset.pop() 随机删除集合中的一个元素 返回这个被删除的元素
# res = varset.pop()
# False
# varset.remove(s) 指定删除集合中的s元素 没有返回值 如果删除元素不存在则会报错
# varset.remove('def')
# {True, 3.1415, 'a', 'b', 123, (1, 2, 3)}
# varset.discard(s) 指定删除集合中的s元素 没有返回值 如果删除元素不存在什么也不做也不会报错
# varset.discard('b')
# {False, True, 3.1415, 123, 'a', (1, 2, 3), 'def'}
# varset.clear() 清空集合
# varset.clear()
# set()

# varset.update(set) 更新集合，如果传入的集合中的元素，原籍和中不存在，则将该元素存入原集合中
varset.update({1, 2, 3, 4, 5})
# {False, True, 2, 3.1415, 3, 4, 5, 'a', (1, 2, 3), 'def', 123, 'b'}

# varset.copy() 浅拷贝集合 不存在深拷贝的问题
# 因为集合中的元素都是不可变对象，包括元组和冰冻集合
# 不存在拷贝后对集合中的二级容器元素改变的情况
res = varset.copy()

print(res)
print(varset)


